#ifndef INVENTORY_CONTAINER_H_INCLUDED_21867008
#define INVENTORY_CONTAINER_H_INCLUDED_21867008
//-----------------------------------------------------------------------------
// Copyright (c) 2011 David Waby
// Initially created on 14/11/2011
//-----------------------------------------------------------------------------

#include "InventoryItem.h"
#include <vector>
class Item;
class Container;
         
//-----------------------------------------------------------------------------
class InventoryContainer : public InventoryItem
{
public:
									InventoryContainer(Item const * i_baseItem);
	virtual							~InventoryContainer();

	bool							AddInventoryItemToContainer(InventoryItem * i_inventoryItem);
	bool							RemoveInventoryItemFromContainer(InventoryItem const * i_inventoryItem);

	inline bool						IsContainerEmpty() const;

protected:

private:

	std::vector<InventoryItem*>		m_inventoryItems;
	typedef std::vector<InventoryItem*>::iterator	InventoryIterator;

	Container const *				m_baseContainer;

									InventoryContainer(const InventoryContainer &rhs);
									InventoryContainer& operator = (const InventoryContainer &rhs);
};

#include "InventoryContainer.inl"

//-----------------------------------------------------------------------------
#endif // INVENTORY_CONTAINER_H_INCLUDED_21867008
